<template>
    <view class="content">
        <van-nav-bar :title="scrolling? navBarTitle : '' " left-arrow @click-left="onClickLeft"></van-nav-bar>
        <scroll-view class="scroll-content" scroll-y :lower-threshold="80" @scroll="scrollPage" show-scrollbar="false">
            <view class="pageTop">
                <view class="cartAd">
                    <view class="cartAd_title">{{ navBarTitle }}</view>
                </view>
            </view>
            <view class="middle">
                <van-cell :border="false" title="系统权限清单"   is-link link-type="navigateTo"  url="/pages/settingsPages/permissionList"></van-cell>
                <van-cell :border="false" title="个人信息收集清单" :value="collectionStatus" is-link link-type="navigateTo" url="/pages/settingsPages/userInfoCollect"></van-cell>
                <van-cell :border="false" title="第三方共享个人清单"   is-link link-type="navigateTo" url="/pages/settingsPages/thirdPartyInfoSharingList"></van-cell>
                <van-cell :border="false" title="用户协议"  is-link link-type="navigateTo" url=""></van-cell>
                <van-cell :border="false" title="服务协议"   is-link link-type="navigateTo" url=""></van-cell>
                <van-cell :border="false" title="隐私政策"  is-link link-type="navigateTo" url=""></van-cell>
                <van-cell :border="false" title="撤回隐私政策授权"  is-link link-type="navigateTo" url="" clickable="true" @click="cancelAuthorization"></van-cell>
                <van-cell :border="false" title="清除缓存" is-link link-type="navigateTo" url="" @tap="clearLocalData"></van-cell>
            </view>
        </scroll-view>
        <van-dialog id="van-dialog" confirm-button-color='#ff6203'/>
    </view>
</template>
<script>
import Dialog from '@/wxcomponents/vant/dialog/dialog'
export default {

    components: {
        // sexPopup
    },

    data () {
        return {
            navBarTitle: '设置',
            scrolling: false,
            permissionList: [
                { 
                    name: '位置信息', 
                    scope: 'scope.userLocation',
                    usage: ['周边商家推荐', '配送范围判断']
                },
                {
                    name: '相册',
                    scope: 'scope.writePhotosAlbum',
                    usage: ['保存活动海报', '上传评价图片']
                }
            ],
            // 新增个人信息存储
            collectedInfo: [],
            cacheKeys: [
                'localUserInfo',
                'appSettings',
                'searchHistory',
                'cartCache'
            ],
            infoTypes: {
                NICKNAME: '昵称',
                AVATAR: '头像',
                PHONE: '手机号',
                LOCATION: '位置信息'
            }
        }
    },
    // 新增计算属性
    computed: {
        collectionStatus() {
            const count = this.collectedInfo.length;
            return count ? `已收集 ${count} 类信息` : '未收集信息';
        }
    },

    watch: {},
    onLoad () {

        // const avatarUrl= uni.getStorageSync('userInfo').avatarUrl
		// const nickName=uni.getStorageSync('userInfo').nickName

		// if(avatarUrl){
		// 	this.userInfo.avatarUrl=avatarUrl
		// }
		// if(nickName){
		// 	this.userInfo.nickName=nickName
		// }
        // const userInfo=uni.getStorageSync('userInfo')
        // if(userInfo){
        //     this.userInfo=userInfo
        // }
    },
    onReady () {
    },
    onShow() {
        // 从本地存储加载
        this.collectedInfo = uni.getStorageSync('localUserInfo') || []
    },
    methods: {
        // 滑动
        scrollPage (e) {
            console.log(e.detail.scrollTop, this.scrolling)
            if (e.detail.scrollTop > 25 && !this.scrolling) {
                this.scrolling = true
            } else if ((e.detail.scrollTop <= 25 && this.scrolling) || (e.detail.scrollTop <= 25 && !this.scrolling)) {
                this.scrolling = false
            }
        },
        // 返回键
        onClickLeft () {
            uni.navigateBack()
        },
        // 撤回用户隐私协议
        cancelAuthorization() {
            wx.getPrivacySetting({
                success: (res) => {
                    console.log(res,'是否授权')
                    const isAuthorized = res.needAuthorization; // 假设返回结果中有这个字段表示是否授权，以官方文档为准
                    if (!isAuthorized) {
                        // 用户已授权，可进行后续撤回等相关操作
                        this.showDialog(); // 假设这是展示撤回授权对话框的函数，下面会给出示例
                    } else {
                        // 用户未授权，提示用户进行授权
                        wx.showModal({
                            title: '隐私授权提示',
                            content: '您尚未授权隐私政策，为了正常使用小程序完整功能，请先进行授权哦。',
                            showCancel: false,
                            confirmText: '立即授权',
                            success: (modalRes) => {
                                if (modalRes.confirm) {
                                    // 调用授权引导接口，这里同样假设一个接口叫 wx.guidePrivacyAuthorization（按官方实际为准）
                                    wx.openPrivacyContract({
                                        success: () => {
                                            console.log('隐私授权引导成功，用户已授权');
                                            // 开始轮询检查授权状态，设置一个定时器，每隔一定时间检查一次
                                            const checkInterval = setInterval(() => {
                                                this.checkPrivacyStatusAfterOpen();
                                            }, 1000); // 这里每隔1秒检查一次，可根据实际情况调整时间间隔
                                        },
                                        fail: (err) => {
                                            console.error('隐私授权引导失败：', err);
                                            // 根据业务逻辑，可以再次提示或者进行其他处理
                                            wx.showModal({
                                                title: '授权失败提示',
                                                content: '隐私授权引导失败，请检查手机应用权限设置或联系小程序客服寻求帮助。',
                                                showCancel: false
                                            });
                                        }
                                    });
                                }
                            }
                        });
                    }
                },
                fail: (err) => {
                    console.error('获取隐私授权状态失败：', err);
                    // 处理获取状态失败的情况，比如提示用户稍后再试等
                    wx.showModal({
                        title: '提示',
                        content: '获取隐私授权状态时遇到问题，请稍后再试或检查网络连接哦。',
                        showCancel: false
                    });
                }
            });
        },
        // 显示对话框，确认撤回隐私协议
        showDialog(){
            Dialog.confirm({
                title: '撤回隐私政策授权',
                message:'确认撤回隐私政策授权？撤回后，您将无法体验17乐生活小程序完整功能',
                
            }).then(() => {
                // wx.getSystemInfo({
                //     success: (res) => {
                //         const wechatVersion = res.version; // 获取到微信客户端版本号，格式如 8.0.38
                //         console.log('微信客户端版本号：', wechatVersion);
                //         // 接下来可以进行版本比较判断等操作
                //     },
                //     fail: (err) => {
                //         console.error('获取系统信息失败：', err);
                //     }
                // });
                wx.miniapp.revokePrivacySetting({
                    success(res) {
                        console.log('revokePrivacySetting success', res)
                        // 新增数据清理
                        uni.removeStorageSync('localUserInfo')
                        uni.clearStorageSync()
                        uni.redirectTo({url:'/pages/login/loginSelect'})
                        wx.miniapp.closeApp()
                        uni.showToast({ title: '已撤回隐私政策授权', icon: 'success' })
                    }
                })
            })
            .catch(() => {
                // on cancel
                console.log('用户取消操作')
            })
        },
        // 检查打开隐私协议后用户是否真正授权的函数
        checkPrivacyStatusAfterOpen() {
            wx.getPrivacySetting({
                success: (res) => {
                    const isAuthorized = res.authorized;
                    if (isAuthorized) {
                        // 授权成功，清除定时器，避免继续轮询
                        clearInterval(checkInterval); 
                        // 授权成功后，可以进行后续操作，比如再次检查授权状态或者直接进行撤回等后续操作
                        this.cancelAuthorization(); 
                    }
                },
                fail: (err) => {
                    console.error('再次获取隐私授权状态失败：', err);
                    // 处理获取状态失败的情况，比如提示用户稍后再试等
                }
            });
             // 显示提示信息，告知用户正在等待授权确认
            wx.showToast({
                title: '正在等待您确认隐私协议授权，请稍等...',
                icon: 'loading',
                duration: 2000 // 显示2秒后自动消失，可根据实际情况调整时长
            });
        },
        // 新增数据收集方法
        async collectUserData() {
            const res = await uni.showModal({
                title: '数据收集声明',
                content: '我们将根据《隐私政策》严格保护您的个人信息',
                confirmText: '同意'
            });

            if (res.confirm) {
                const info = {
                    type: '手机号',
                    date: new Date().toLocaleDateString(),
                    source: '用户主动提供'
                };
                this.collectedInfo.push(info);
                uni.setStorageSync('localUserInfo', this.collectedInfo);
            }
        },

        // 修改清除缓存方法
        clearLocalData() {
            Dialog.confirm({
                title: '确认清除',
                message: '将清除所有本地缓存数据'
            }).then(() => {
                // 清除本地缓存数据
                // uni.clearStorageSync()
                uni.removeStorageSync('localUserInfo');
                this.collectedInfo = []
                // 添加缓存大小反馈
                uni.getStorageInfo({
                    success: (res) => {
                        const clearedSize = (res.currentSize / 1024).toFixed(2);
                        uni.showToast({
                            title: `已清除${clearedSize}KB缓存`,
                            icon: 'success'
                        })
                    }
                })
            }).catch(() => {
                console.log('取消清除')
            })
        }


    }

}
</script>
<style lang="scss" scoped>
// @import '@/styles/variables.scss';

.content {
    background-color: #ffffff;
    display: flex;
    flex-direction:column;
    overflow:hidden;
    box-sizing: border-box;
    height:100vh;
}
.scroll-content {
    flex: 1;
    height: 1px;
}

.pageTop{
    // display: flex;
    // flex-direction: column;
    // background-color: #f9f9f9;
    // padding-bottom: 3px;
}

 // 页面标题部分
 .cartAd {
    background-color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 17px 24px 21px 24px ;

}

.cartAd_title {
    font-size: 30px;
    text-align: left;
    line-height: 30px;
    color: #111111;
}
.orderBox{
    background-color: #ffffff;
    display: flex;
    align-items: center;
    padding: 23px 24px 21px 24px ;
}

.goodsPic{
    width: 15%;
    img{
        width: 100%;
        height: auto;
    }
}
.pageTopRight{
    margin-left:15px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
}


.middle{
    padding:24px 24px 120px 24px;
}



::v-deep .van-nav-bar__left {
    width: 56px;
    height: 44px;
}

::v-deep .van-icon {
    color: #242629 !important;
}

::v-deep .van-cell{
    padding: 10px 0px !important;
}
</style>
